package cn.com.huzo.model.entities.purchase;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 采购合同明细实体类
 *
 * @author 吴旭
 */
public class PoLinesEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = 5660492324125627461L;
    private String LinesId;
    private Long HeaderId;
    private String PoNo;                  // 订单号
    private String StyleNo;               // 款号
    private String SerialNo;              // 该款系列号
    private Long MaterialId;              // 材料
    private String MaterialName;
    private String MaterialCode;
    private Double Coefficient;           // 米转公斤系数
    private Long MrpUomId;                // 调达表用单位
    private Long UomId;                   // 采购订单用单位
    private String UomName;
    private Long SupplierId;              // 供应商标识
    private String SupplierName;          // 供应商
    private String Specification;         // 规格
    private String YarnCount;             // 纱支
    private String FabricWidth;           // 幅宽
    private String GramWeight;            // 克重
    private String MaterialColourNumber;
    private String MaterialColourName;
    private Double MrpQuantity;           // 调达补给数
    private Double PlanQuantity;          // 计划采购数
    private Double PoQuantity;            // 实际采购数
    private Double UnitPrice;
    private Double PoUnitPrice;           // 采购单价
    private Double SparedQuantity;        // 损耗
    private Double ArrivalAllowed;        // 到货允许
    private Double MaxArrivalQuantity;    // 最大到货数量
    private String ProductColourName;
    private String ProductSizeName;
    private String PartOfNeed;
    private String Description;
    private String Destination;
    private Short RowFlag;               // 能够更改材料标记
    private Double StockInQuantity;      // 到货数

    public String getLinesId() {
        return LinesId;
    }

    public Long getHeaderId() {
        return HeaderId;
    }

    public String getPoNo() {
        return PoNo;
    }

    public String getStyleNo() {
        return StyleNo;
    }

    public String getSerialNo() {
        return SerialNo;
    }

    public Long getMaterialId() {
        return MaterialId;
    }

    public String getMaterialName() {
        return MaterialName;
    }

    public String getMaterialCode() {
        return MaterialCode;
    }

    public Double getCoefficient() {
        return Coefficient;
    }

    public Long getMrpUomId() {
        return MrpUomId;
    }

    public Long getUomId() {
        return UomId;
    }

    public String getUomName() {
        return UomName;
    }

    public Long getSupplierId() {
        return SupplierId;
    }

    public String getSupplierName() {
        return SupplierName;
    }

    public String getSpecification() {
        return Specification;
    }

    public String getYarnCount() {
        return YarnCount;
    }

    public String getFabricWidth() {
        return FabricWidth;
    }

    public String getGramWeight() {
        return GramWeight;
    }

    public String getMaterialColourNumber() {
        return MaterialColourNumber;
    }

    public String getMaterialColourName() {
        return MaterialColourName;
    }

    public Double getMrpQuantity() {
        return MrpQuantity;
    }

    public Double getPlanQuantity() {
        return PlanQuantity;
    }

    public Double getPoQuantity() {
        return PoQuantity;
    }

    public Double getUnitPrice() {
        return UnitPrice;
    }

    public Double getPoUnitPrice() {
        return PoUnitPrice;
    }

    public Double getSparedQuantity() {
        return SparedQuantity;
    }

    public Double getArrivalAllowed() {
        return ArrivalAllowed;
    }

    public Double getMaxArrivalQuantity() {
        return MaxArrivalQuantity;
    }

    public String getProductColourName() {
        return ProductColourName;
    }

    public String getProductSizeName() {
        return ProductSizeName;
    }

    public String getPartOfNeed() {
        return PartOfNeed;
    }

    public String getDescription() {
        return Description;
    }

    public String getDestination() {
        return Destination;
    }

    public Short getRowFlag() {
        return RowFlag;
    }

    public void setLinesId(String LinesId) {
        this.LinesId = LinesId;
    }

    public void setHeaderId(Long HeaderId) {
        this.HeaderId = HeaderId;
    }

    public void setPoNo(String PoNo) {
        this.PoNo = PoNo;
    }

    public void setStyleNo(String StyleNo) {
        this.StyleNo = StyleNo;
    }

    public void setSerialNo(String SerialNo) {
        this.SerialNo = SerialNo;
    }

    public void setMaterialId(Long MaterialId) {
        this.MaterialId = MaterialId;
    }

    public void setMaterialName(String MaterialName) {
        this.MaterialName = MaterialName;
    }

    public void setMaterialCode(String MaterialCode) {
        this.MaterialCode = MaterialCode;
    }

    public void setCoefficient(Double Coefficient) {
        this.Coefficient = Coefficient;
    }

    public void setMrpUomId(Long MrpUomId) {
        this.MrpUomId = MrpUomId;
    }

    public void setUomId(Long UomId) {
        this.UomId = UomId;
    }

    public void setUomName(String UomName) {
        this.UomName = UomName;
    }

    public void setSupplierId(Long SupplierId) {
        this.SupplierId = SupplierId;
    }

    public void setSupplierName(String SupplierName) {
        this.SupplierName = SupplierName;
    }

    public void setSpecification(String Specification) {
        this.Specification = Specification;
    }

    public void setYarnCount(String YarnCount) {
        this.YarnCount = YarnCount;
    }

    public void setFabricWidth(String FabricWidth) {
        this.FabricWidth = FabricWidth;
    }

    public void setGramWeight(String GramWeight) {
        this.GramWeight = GramWeight;
    }

    public void setMaterialColourNumber(String MaterialColourNumber) {
        this.MaterialColourNumber = MaterialColourNumber;
    }

    public void setMaterialColourName(String MaterialColourName) {
        this.MaterialColourName = MaterialColourName;
    }

    public void setMrpQuantity(Double MrpQuantity) {
        this.MrpQuantity = MrpQuantity;
    }

    public void setPlanQuantity(Double PlanQuantity) {
        this.PlanQuantity = PlanQuantity;
    }

    public void setPoQuantity(Double PoQuantity) {
        this.PoQuantity = PoQuantity;
    }

    public void setUnitPrice(Double UnitPrice) {
        this.UnitPrice = UnitPrice;
    }

    public void setPoUnitPrice(Double PoUnitPrice) {
        this.PoUnitPrice = PoUnitPrice;
    }

    public void setSparedQuantity(Double SparedQuantity) {
        this.SparedQuantity = SparedQuantity;
    }

    public void setArrivalAllowed(Double ArrivalAllowed) {
        this.ArrivalAllowed = ArrivalAllowed;
    }

    public void setMaxArrivalQuantity(Double MaxArrivalQuantity) {
        this.MaxArrivalQuantity = MaxArrivalQuantity;
    }

    public void setProductColourName(String ProductColourName) {
        this.ProductColourName = ProductColourName;
    }

    public void setProductSizeName(String ProductSizeName) {
        this.ProductSizeName = ProductSizeName;
    }

    public void setPartOfNeed(String PartOfNeed) {
        this.PartOfNeed = PartOfNeed;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    public void setDestination(String Destination) {
        this.Destination = Destination;
    }

    public void setRowFlag(Short RowFlag) {
        this.RowFlag = RowFlag;
    }

    public Double getStockInQuantity() {
        return StockInQuantity;
    }

    public void setStockInQuantity(Double StockInQuantity) {
        this.StockInQuantity = StockInQuantity;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof PoLinesEntity)) {
            return false;
        }

        final PoLinesEntity that = (PoLinesEntity) o;

        return new EqualsBuilder()
                .append(this.getLinesId(), that.getLinesId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getLinesId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
